<!--
 *                        .::::.
 *                      .::::::::.
 *                     :::::::::::
 *                  ..:::::::::::'
 *               '::::::::::::'
 *                 .::::::::::
 *            '::::::::::::::..
 *                 ..::::::::::::.
 *               ``::::::::::::::::
 *                ::::``:::::::::'        .:::.
 *               ::::'   ':::::'       .::::::::.
 *             .::::'      ::::     .:::::::'::::.
 *            .:::'       :::::  .:::::::::' ':::::.
 *           .::'        :::::.:::::::::'      ':::::.
 *          .::'         ::::::::::::::'         ``::::.
 *      ...:::           ::::::::::::'              ``::.
 *     ````':.          ':::::::::'                  ::::..
 *                        '.:::::'                    ':'````..
 * 
 * @Author: byx
 * @Date: 2022-11-26 22:22:30
 * @LastEditors: byx
 * @LastEditTime: 2022-11-26 22:36:12
 * @version: 1.0
 * @Descripttion: wwww.byx1024.top
 -->
<!DOCTYPE html>
<html lang="zh-CN">

<head>
  <meta charset="UTF-8">
  <meta name="viewport"
    content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, initial-scale=no">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
  <link rel="shortcut icon"
    href="data:image/svg+xml,<svg xmlns=%22http: //www.w3.org/2000/svg%22 viewBox=%229 0 100 100%22><text y=%22.9em%22 font-size=%2290%22>💩</text></svg>">
</head>

<body>
  <div id="app" class="box"></div>
  <script>
    // 个人说明
    console.log("%c不言谢-博客园", "background:#ff6d6d;color:#fff;margin: 10px;padding: 6px;", "https: //www.cnblogs.com/byx1024/")

    // 1、常用方法：得到一个 Promise 对象
    const p = new Promise((resolve, reject) => {
      // 通过同步 / 异步判断 最后返回 resolve / reject
      if (true) {
        resolve()
      } else {
        reject()
      }
    })

    // 2、Promise 还提供了一些常用的 静态（static）方法
    // Promise.resolve()
    // Promise.reject()
    // Promise.all()
    // Promise.race()

    // 2.1 promise.resolve(200) 会返回一个成功的 promise 结果，可以带参数。
    // 等价于：
    // new Promise(resolve => resolve(200))

    // 2.2 promise.roject(new Error('500')) 会返回一个失败的 promise 结果。
    // 可以直接带错误信息参数，通常都会 new Error() 返回
    // 等价于：
    // new Promise(reject => reject(new Error('500')))

    // 2.3 promise.all() 接收一个 promise 数组，返回一个 promise 结果。
    // 只有所有的 promise 都成功了，返回的 promise 才会成功。可以通过 .then() 来获取到结果
    // Promise.all([p1, p2, p3, p4]).then()

    // 2.4 promise.race() 接收一个 promise 数组，返回一个 promise 结果。
    // 返回的 promise 只会取决于第一个接收的 promise 结果
    // 常用于：获取一个数据，但是有多个获取场景，缓存、请求、多个网站，最后只要有一个有结果，就直接结束
    Promise.race([p1, p2, p3, p4]).then()
  </script>
</body>

</html>